<?php
namespace Admin\Controller;
class AdvertController extends CommonController {

	/**
	 * 节点管理列表
	 * @internal 此方法显示节点管理列表
	 * @access public
	 * @param string $pid	父级id
	 * @param string $numPerPage
	 * @param string $pageNum
	 * @param string $keyword 搜索关键字
	 * @since 2014-10-11 15:28:59
	 * @author FrankKung <kongfanjian@andlisoft.com>
	 */
	public function index() {
		// 获取分页等参数
		$pid		= I("get.pid", '0');
		$numPerPage	= I('post.numPerPage', 20);
		$pageNum	= I('post.pageNum', 1);
		$keyword	= I('post.keyword');

		// 模型
		$Node = D("Node");

		// 模糊搜索
		C('DB_LIKE_FIELDS','name|title'); // 设置模糊查询字段
		if (!empty($keyword)) { // 搜索关键字
			$map['name|title'] = $keyword;
		} else { // 查询条件,让节点呈现为目录结构
			$map['pid'] = $pid;
		}

		// 其它设置
		session('currentNodeId', $pid);

		// 获取节点
		$list = $Node->where($map)->select();
		$this->assign('list', $list);

		// 分页信息
		$total = $Node->where($map)->count($id);
		$this->assign('total', $total);
		$this->assign('numPerPage', $numPerPage);
		$this->assign('pageNum', $pageNum);

		// 显示
		$this->display();
	}

	/**
	 * 新增节点
	 * @internal 此方法用于新增节点
	 * @access public
	 * @param string $name
	 * @param string $title
	 * @param string $status
	 * @param string $remark
	 * @param string $sort
	 * @param string $pid
	 * @param string $level
	 * @param string $group_id
	 * @since 2014-10-11 16:18:06
	 * @author FrankKung <kongfanjian@andlisoft.com>
	 */
	public function add() {
		// 模型
		$Node	=	D("Node");
		$Group	=	D("Group");

		if (!IS_POST) { // 显示新增页面
			$this->assign('pid', session('currentNodeId'));
			$this->assign('level',$Node->level+1);
			$this->display();
		} else {
			// 表单数据
			$data = array(
				'name'		=> I('post.name'),
				'title'		=> I('post.title'),
				'status'	=> I('post.status'),
				'remark'	=> I('post.remark'),
				'sort'		=> I('post.sort'),
				'pid'		=> I('post.pid'),
				'level'		=> I('post.level'),
				'group_id'	=> I('post.group_id','0'),
			);
			
			$id = $Node->add($data);
			if (false !== $id) {
				$this->DwzCallback('增加成功');
			} else {
				$this->DwzCallback('增加失败', '', 300);
			}
		}
	}

	/**
	 * 删除节点
	 * @internal 此方法用于新增节点
	 * @access public
	 * @param string $id
	 * @since 2014-10-11 16:46:37
	 * @author FrankKung <kongfanjian@andlisoft.com>
	 */
	public function delete() {
		// 模型
		$Node	=	D("Node");
		// 条件
		$map['id'] = I('get.id', '0');

		$ret = $Node->where($map)->delete();
		if (false !== $ret) {
			$this->DwzCallback('删除节点成功');
		} else {
			$this->DwzCallback('删除节点失败', '', 300);
		}
	}
	/**
	 * 编辑节点
	 * @internal 此方法用于编辑节点
	 * @access public
	 * @param string $id
	 * @since 2014-10-11 16:46:37
	 * @author FrankKung <kongfanjian@andlisoft.com>
	 */
	public function edit() {
		// 参数
		$id = I('get.id', '0');
		// 模型
		$Node	=	D("Node");
		$model	=	M("Group");
		// 条件
		$map['id'] = $id;

		if (!IS_POST) { // 显示编辑页面
			$info = $Node->where($map)->find();
			$this->assign('info', $info);
			
			if ($info['pid'] == 0) {
				$list = array();
			} else {
				$list =	$model->where('status=1')->select();
			}
			$this->assign('list',$list);

			$this->display();
		} else { // 保存数据
			// 表单数据
			$data = array(
				'name'		=> I('post.name'),
				'title'		=> I('post.title'),
				'status'	=> I('post.status'),
				'remark'	=> I('post.remark'),
				'sort'		=> I('post.sort'),
				//'pid'		=> I('post.pid'),
				//'level'		=> I('post.level'),
				'group_id'	=> I('post.group_id', '0'),
			);
			$ret = $Node->where($map)->save($data);
			if (false !== $ret) {
				$this->DwzCallback('编辑节点成功');
			} else {
				$this->DwzCallback('编辑节点失败', '', 300);
			}
		}
	}

}
